package edu.ustb.efws.base.mapper;

import edu.ustb.efws.base.domain.Alarm;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 报警设置数据映射
 *
 * @author TS Group
 */
@Mapper
public interface AlarmMapper {

    /**
     * 新增报警设置
     *
     * @param t {@link Alarm}
     * @return 新增条数
     */
    int insert(Alarm t);

    /**
     * 修改报警设置
     *
     * @param t {@link Alarm}
     * @return 修改条数
     */
    int update(Alarm t);

    /**
     * 删除报警
     *
     * @param id 编号
     * @return 删除条数
     */
    int delete(@Param("id")long id);

    /**
     * 是否开启报警
     *
     * @param id 编号
     * @param enable true:开启
     * @return 修改条数
     */
    int updateEnable(@Param("id")long id, @Param("enable")boolean enable);

    /**
     * 查询报警设置
     *
     * @param id 编号
     * @return {@link Alarm}
     */
    Alarm findOne(@Param("id") long id);

    /**
     * 查询所有报警设置
     *
     * @return 报警设置集合
     */
    List<Alarm> findAll();

    /**
     * 查询报警设置记录数
     *
     * @param name 姓名
     * @return 记录数
     */
    long count(String name);

    /**
     * 查询报警设置
     *
     * @param name 姓名
     * @param offset 开始位置
     * @param limit 记录数
     * @return 报警设置集合
     */
    List<Alarm> find(String name, int offset, int limit);
}
